
package com.one.odf.model;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>Java class for scheduleUnitType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="scheduleUnitType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="StartText" type="{}estimatedStartTextType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="ItemName" type="{}itemNameType" maxOccurs="unbounded"/&gt;
 *         &lt;element name="ItemDescription" type="{}itemDescriptionType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="VenueDescription" type="{}VenueDescriptionType"/&gt;
 *         &lt;choice&gt;
 *           &lt;element name="StartList" type="{}scheduleStartListType" minOccurs="0"/&gt;
 *           &lt;element name="Result" type="{}resultType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;/choice&gt;
 *       &lt;/sequence&gt;
 *       &lt;attribute name="Code" use="required" type="{}rscType" /&gt;
 *       &lt;attribute name="PhaseType" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="UnitNum" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ScheduleStatus" use="required" type="{}scheduleStatusType" /&gt;
 *       &lt;attribute name="StartDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" /&gt;
 *       &lt;attribute name="HideStartDate" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="EndDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" /&gt;
 *       &lt;attribute name="HideEndDate" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ActualStartDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" /&gt;
 *       &lt;attribute name="ActualEndDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" /&gt;
 *       &lt;attribute name="Order" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
 *       &lt;attribute name="Medal" type="{}unitMedalType" /&gt;
 *       &lt;attribute name="Venue" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="Location" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="MediaAccess" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="SessionCode" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ModificationIndicator" type="{}modificationIndicatorType" /&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "scheduleUnitType", propOrder = {
    "startText",
    "itemName",
    "itemDescription",
    "venueDescription",
    "startList",
    "result"
})
public class ScheduleUnitType {

    @XmlElement(name = "StartText")
    protected List<EstimatedStartTextType> startText;
    @XmlElement(name = "ItemName", required = true)
    protected List<ItemNameType> itemName;
    @XmlElement(name = "ItemDescription")
    protected List<ItemDescriptionType> itemDescription;
    @XmlElement(name = "VenueDescription", required = true)
    protected VenueDescriptionType venueDescription;
    @XmlElement(name = "StartList")
    protected ScheduleStartListType startList;
    @XmlElement(name = "Result")
    protected List<ResultType> result;
    @XmlAttribute(name = "Code", required = true)
    protected String code;
    @XmlAttribute(name = "PhaseType", required = true)
    protected String phaseType;
    @XmlAttribute(name = "UnitNum")
    protected String unitNum;
    @XmlAttribute(name = "ScheduleStatus", required = true)
    protected ScheduleStatusType scheduleStatus;
    @XmlAttribute(name = "StartDate")
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar startDate;
    @XmlAttribute(name = "HideStartDate")
    protected String hideStartDate;
    @XmlAttribute(name = "EndDate")
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar endDate;
    @XmlAttribute(name = "HideEndDate")
    protected String hideEndDate;
    @XmlAttribute(name = "ActualStartDate")
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar actualStartDate;
    @XmlAttribute(name = "ActualEndDate")
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar actualEndDate;
    @XmlAttribute(name = "Order")
    protected Integer order;
    @XmlAttribute(name = "Medal")
    protected String medal;
    @XmlAttribute(name = "Venue")
    protected String venue;
    @XmlAttribute(name = "Location")
    protected String location;
    @XmlAttribute(name = "MediaAccess")
    protected String mediaAccess;
    @XmlAttribute(name = "SessionCode")
    protected String sessionCode;
    @XmlAttribute(name = "ModificationIndicator")
    protected ModificationIndicatorType modificationIndicator;

    /**
     * Gets the value of the startText property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the startText property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getStartText().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link EstimatedStartTextType }
     * 
     * 
     */
    public List<EstimatedStartTextType> getStartText() {
        if (startText == null) {
            startText = new ArrayList<EstimatedStartTextType>();
        }
        return this.startText;
    }

    /**
     * Gets the value of the itemName property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the itemName property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getItemName().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ItemNameType }
     * 
     * 
     */
    public List<ItemNameType> getItemName() {
        if (itemName == null) {
            itemName = new ArrayList<ItemNameType>();
        }
        return this.itemName;
    }

    /**
     * Gets the value of the itemDescription property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the itemDescription property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getItemDescription().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ItemDescriptionType }
     * 
     * 
     */
    public List<ItemDescriptionType> getItemDescription() {
        if (itemDescription == null) {
            itemDescription = new ArrayList<ItemDescriptionType>();
        }
        return this.itemDescription;
    }

    /**
     * Gets the value of the venueDescription property.
     * 
     * @return
     *     possible object is
     *     {@link VenueDescriptionType }
     *     
     */
    public VenueDescriptionType getVenueDescription() {
        return venueDescription;
    }

    /**
     * Sets the value of the venueDescription property.
     * 
     * @param value
     *     allowed object is
     *     {@link VenueDescriptionType }
     *     
     */
    public void setVenueDescription(VenueDescriptionType value) {
        this.venueDescription = value;
    }

    /**
     * Gets the value of the startList property.
     * 
     * @return
     *     possible object is
     *     {@link ScheduleStartListType }
     *     
     */
    public ScheduleStartListType getStartList() {
        return startList;
    }

    /**
     * Sets the value of the startList property.
     * 
     * @param value
     *     allowed object is
     *     {@link ScheduleStartListType }
     *     
     */
    public void setStartList(ScheduleStartListType value) {
        this.startList = value;
    }

    /**
     * Gets the value of the result property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the result property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getResult().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ResultType }
     * 
     * 
     */
    public List<ResultType> getResult() {
        if (result == null) {
            result = new ArrayList<ResultType>();
        }
        return this.result;
    }

    /**
     * Gets the value of the code property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCode() {
        return code;
    }

    /**
     * Sets the value of the code property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCode(String value) {
        this.code = value;
    }

    /**
     * Gets the value of the phaseType property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPhaseType() {
        return phaseType;
    }

    /**
     * Sets the value of the phaseType property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPhaseType(String value) {
        this.phaseType = value;
    }

    /**
     * Gets the value of the unitNum property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getUnitNum() {
        if (unitNum == null) {
            return "";
        } else {
            return unitNum;
        }
    }

    /**
     * Sets the value of the unitNum property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setUnitNum(String value) {
        this.unitNum = value;
    }

    /**
     * Gets the value of the scheduleStatus property.
     * 
     * @return
     *     possible object is
     *     {@link ScheduleStatusType }
     *     
     */
    public ScheduleStatusType getScheduleStatus() {
        return scheduleStatus;
    }

    /**
     * Sets the value of the scheduleStatus property.
     * 
     * @param value
     *     allowed object is
     *     {@link ScheduleStatusType }
     *     
     */
    public void setScheduleStatus(ScheduleStatusType value) {
        this.scheduleStatus = value;
    }

    /**
     * Gets the value of the startDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getStartDate() {
        return startDate;
    }

    /**
     * Sets the value of the startDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setStartDate(XMLGregorianCalendar value) {
        this.startDate = value;
    }

    /**
     * Gets the value of the hideStartDate property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getHideStartDate() {
        if (hideStartDate == null) {
            return "";
        } else {
            return hideStartDate;
        }
    }

    /**
     * Sets the value of the hideStartDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setHideStartDate(String value) {
        this.hideStartDate = value;
    }

    /**
     * Gets the value of the endDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getEndDate() {
        return endDate;
    }

    /**
     * Sets the value of the endDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setEndDate(XMLGregorianCalendar value) {
        this.endDate = value;
    }

    /**
     * Gets the value of the hideEndDate property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getHideEndDate() {
        if (hideEndDate == null) {
            return "";
        } else {
            return hideEndDate;
        }
    }

    /**
     * Sets the value of the hideEndDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setHideEndDate(String value) {
        this.hideEndDate = value;
    }

    /**
     * Gets the value of the actualStartDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getActualStartDate() {
        return actualStartDate;
    }

    /**
     * Sets the value of the actualStartDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setActualStartDate(XMLGregorianCalendar value) {
        this.actualStartDate = value;
    }

    /**
     * Gets the value of the actualEndDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getActualEndDate() {
        return actualEndDate;
    }

    /**
     * Sets the value of the actualEndDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setActualEndDate(XMLGregorianCalendar value) {
        this.actualEndDate = value;
    }

    /**
     * Gets the value of the order property.
     * 
     * @return
     *     possible object is
     *     {@link Integer }
     *     
     */
    public Integer getOrder() {
        return order;
    }

    /**
     * Sets the value of the order property.
     * 
     * @param value
     *     allowed object is
     *     {@link Integer }
     *     
     */
    public void setOrder(Integer value) {
        this.order = value;
    }

    /**
     * Gets the value of the medal property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getMedal() {
        return medal;
    }

    /**
     * Sets the value of the medal property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setMedal(String value) {
        this.medal = value;
    }

    /**
     * Gets the value of the venue property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getVenue() {
        return venue;
    }

    /**
     * Sets the value of the venue property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setVenue(String value) {
        this.venue = value;
    }

    /**
     * Gets the value of the location property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getLocation() {
        return location;
    }

    /**
     * Sets the value of the location property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setLocation(String value) {
        this.location = value;
    }

    /**
     * Gets the value of the mediaAccess property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getMediaAccess() {
        if (mediaAccess == null) {
            return "";
        } else {
            return mediaAccess;
        }
    }

    /**
     * Sets the value of the mediaAccess property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setMediaAccess(String value) {
        this.mediaAccess = value;
    }

    /**
     * Gets the value of the sessionCode property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSessionCode() {
        if (sessionCode == null) {
            return "";
        } else {
            return sessionCode;
        }
    }

    /**
     * Sets the value of the sessionCode property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSessionCode(String value) {
        this.sessionCode = value;
    }

    /**
     * Gets the value of the modificationIndicator property.
     * 
     * @return
     *     possible object is
     *     {@link ModificationIndicatorType }
     *     
     */
    public ModificationIndicatorType getModificationIndicator() {
        return modificationIndicator;
    }

    /**
     * Sets the value of the modificationIndicator property.
     * 
     * @param value
     *     allowed object is
     *     {@link ModificationIndicatorType }
     *     
     */
    public void setModificationIndicator(ModificationIndicatorType value) {
        this.modificationIndicator = value;
    }

}
